#include #include #define NODE_2 2 // 🔴 REPLACE with your Node 1 MAC uint8_t macNode1[] = {0x58, 0xE6, 0xC5, 0x19, 0xAD, 0xC8}; typedef struct { int targetID; int command; } Message; void OnDataRecv(const esp_now_recv_info_t *info, const uint8_t *incomingData, int len) { Serial.println("RAW PACKET ARRIVED"); Message msg; memcpy(&msg, incomingData, sizeof(msg)); Serial.print("targetID: "); Serial.println(msg.targetID); if (msg.targetID != NODE_2) { Serial.println("Not for Node 2"); return; } Serial.println("Node 2 → command received"); } void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.disconnect(); if (esp_now_init() != ESP_OK) { Serial.println("ESP-NOW init failed"); return; } // Add Master as peer esp_now_peer_info_t peer = {}; memcpy(peer.peer_addr, macNode1, 6); peer.channel = 0; peer.encrypt = false; esp_now_add_peer(&peer); esp_now_register_recv_cb(OnDataRecv); Serial.println("Node 2 ready"); } void loop() {}